﻿namespace FireChat.Share.Command;


/// <summary>
/// 指令 关键字特性
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
public class CommandToken : Attribute
{
    /// <summary>
    /// 所有 关键字
    /// </summary>
    public IEnumerable<string> Tokens { get; }



    /// <summary>
    /// 初始化 指令关键字
    /// </summary>
    /// <param name="tokens">关键字列表</param>
    public CommandToken(params string[] tokens)
    {
        Tokens = tokens;
    }



    /// <summary>
    /// 查看指定关键字是否包含在其中
    /// </summary>
    public bool IsExists(string token)
    {
        if (string.IsNullOrWhiteSpace(token)) return false;

        foreach (var i in Tokens)
        {
            if (i.ToLower() == token.ToLower()) return true;
        }

        return false;
    }
}
